package com.uzai.console.service.wechatprivate;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.wechatprivate.friendrequest.FriendRequestIdListDto;
import com.uzai.console.dto.wechatprivate.friendrequest.FriendRequestQuery;
import com.uzai.console.vo.wechatprivate.friendrequest.FriendRequestCountItemVo;
import com.uzai.console.vo.wechatprivate.friendrequest.FriendRequestInfoVo;

import java.util.List;
import java.util.Map;

/**
 * @author liuqi
 * @date 2021年08月13日 11:33
 */
public interface FriendRequestService {

    /**
     * 查询好友请求列表
     *
     * @param friendRequestQuery
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    Page<FriendRequestInfoVo> findFriendRequestList(FriendRequestQuery friendRequestQuery, Boolean tuominFlag);

    /**
     * 查询好友请求统计信息
     * <p>
     * 主要用于数据面板使用
     */
    List<FriendRequestCountItemVo> listFriendRequestCount(FriendRequestQuery query);

    List<FriendRequestCountItemVo> countFriendApplyAndPassCount(FriendRequestQuery query);

    /**
     * 获取各个机器人好友请求总数
     * <p>
     * 不区分来源
     *
     * @param query
     * @return
     */
    Map<Long, Integer> totalFriendRequestCount(FriendRequestQuery query);

    /**
     * 删除好友请求
     *
     * @param friendRequestIdListDto
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void deleteFriendRequest(FriendRequestIdListDto friendRequestIdListDto);

    /**
     * 添加好友请求
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param friendRequestIdListDto
     * @return null
     */
    void addFriendRequest(FriendRequestIdListDto friendRequestIdListDto);

    /**
     * 忽略好友请求
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param friendRequestIdListDto
     * @return null
     */
    void passFriendRequest(FriendRequestIdListDto friendRequestIdListDto);
}
